package com.example.demo.util;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;

//INSERT INTO `zbgw`.`zbp_post` (`log_CateID`, `log_AuthorID`, `log_Tag`, `log_Status`, `log_Type`, `log_Alias`, `log_IsTop`, `log_IsLock`, `log_Title`, `log_Intro`, `log_Content`, `log_CreateTime`, `log_PostTime`, `log_UpdateTime`, `log_CommNums`, `log_ViewNums`, `log_Template`, `log_Meta`) VALUES ( 2, 1, '', 0, 0, '', 0, 0, '', '', 1700014121, 1700014121, 1700016986, 0, 7, '', '');
//        写个java代码，获取本地“E:\2023101609点03分文章\上传服务器最终版\2-20231016092947.txt”，把每行中******符号前面的取出来重新放到一个新txt文件里，每行******符号后面的字符串前面加上字符串“<p><img class="ue-image" src="{#ZC_BLOG_HOST#}zb_users/upload/2023/11/20231115150122170003168277573.png" title="guanggao.jpg" alt="guanggao.jpg" width="1382" height="779" style="width: 1382px; height: 779px;"/></p>”，按照以上的sql语句，把log_Title的值读取”每行中******符号前面的"的每一行,
//        把log_Intro的值每行******符号后面的每一行，
//        log_Content把log_Intro的值每行******符号后面的每一行，
//        log_Tag的值根据log_Title内容里面如果包含文字
//        "行政处罚"值为{1},"法律诉讼"值为{2},"法律诉讼"值为{2},"被执行人"值为{3},"环保处罚"值为{4},"企业信用修复"值为{5},
//        "裁判文书"值为{6},"限制高消费"值为{7},"开庭公告"值为{8}，"立案信息"值为{9}，"企业失信信息"值为{10}，"欠税公告"值为{11}，
//        "工商异常"值为{12}，"信用中国"值为{13}，"国家企业信用信息公示系统"值为{14}，"中国裁判文书网"值为{15}，"中国庭审公开网"值为{16}，" 中国执行信息公开网"值为{17}，
//        "天眼查"值为{18}，"企查查"值为{19}，"爱企查"值为{20}，"启信宝"值为{21}，"水滴信用"值为{22}，可以两个和两个以上,log_CreateTime的值取当前系统10位时间戳,log_PostTime的值取当前系统10位时间戳,log_UpdateTime的值取当前系统10位时间戳,log_ViewNums为100里面的随机数
//        并且把生成好的语句单独打印到一个文件里面，语句最后结果中”;“前面的","号去掉，前面注意生成的结果支持批量一起执行
public class GenerateSQL {
    public static void main(String[] args) {
        String inputFile = "E:\\2023101609点03分文章\\上传服务器最终版\\5-20231016092947.txt";
        String outputFile = "E:\\generated_sql.txt";
        String additionalString = "<p><img class=\"ue-image\" src=\"{#ZC_BLOG_HOST#}zb_users/upload/2023/11/20231115150122170003168277573.png\" title=\"guanggao.jpg\" alt=\"guanggao.jpg\" width=\"1382\" height=\"779\" style=\"width: 1382px; height: 779px;\"/></p>";

        String sql = "INSERT INTO `zbgw`.`zbp_post` (`log_CateID`, `log_AuthorID`, `log_Tag`, `log_Status`, `log_Type`, `log_Alias`, `log_IsTop`, `log_IsLock`, `log_Title`, `log_Intro`, `log_Content`, `log_CreateTime`, `log_PostTime`, `log_UpdateTime`, `log_CommNums`, `log_ViewNums`, `log_Template`, `log_Meta`) VALUES ";

        try (BufferedReader reader = new BufferedReader(new FileReader(inputFile));
             BufferedWriter writer = new BufferedWriter(new FileWriter(outputFile))) {

            List<String> titles = new ArrayList<>();
            List<String> intros = new ArrayList<>();

            String line;
            while ((line = reader.readLine()) != null) {
                int index = line.indexOf("******");
                if (index != -1) {
                    String title = line.substring(0, index).trim();
                    String intro = additionalString + line.substring(index + 6).trim();

                    titles.add(title);
                    intros.add(intro);
                }
            }

            StringBuilder sqlBuilder = new StringBuilder(sql);

            Map<String, String> tagMap = new HashMap<>();
            tagMap.put("行政处罚", "{1}");
            tagMap.put("法律诉讼", "{2}");
            tagMap.put("被执行人", "{3}");
            tagMap.put("环保处罚", "{4}");
            tagMap.put("企业信用修复", "{5}");
            tagMap.put("裁判文书", "{6}");
            tagMap.put("限制高消费", "{7}");
            tagMap.put("开庭公告", "{8}");
            tagMap.put("立案信息", "{9}");
            tagMap.put("企业失信信息", "{10}");
            tagMap.put("欠税公告", "{11}");
            tagMap.put("工商异常", "{12}");
            tagMap.put("信用中国", "{13}");
            tagMap.put("国家企业信用信息公示系统", "{14}");
            tagMap.put("中国裁判文书网", "{15}");
            tagMap.put("中国庭审公开网", "{16}");
            tagMap.put("中国执行信息公开网", "{17}");
            tagMap.put("天眼查", "{18}");
            tagMap.put("企查查", "{19}");
            tagMap.put("爱企查", "{20}");
            tagMap.put("启信宝", "{21}");
            tagMap.put("水滴信用", "{22}");

            long createTime = System.currentTimeMillis() / 1000;
            long postTime = System.currentTimeMillis() / 1000;
            long updateTime = System.currentTimeMillis() / 1000;

            Random random = new Random();

            for (int i = 0; i < titles.size(); i++) {
                String title = titles.get(i);
                String intro = intros.get(i);

                StringBuilder tagBuilder = new StringBuilder();
                for (String tag : tagMap.keySet()) {
                    if (title.contains(tag)) {
                        tagBuilder.append(tagMap.get(tag)).append("");
                    }
                }
                String tags = tagBuilder.toString();
                if (tags.length() > 0) {
                    tags = tags.substring(0, tags.length()); // Remove the last comma
                }

                int viewNums = random.nextInt(100);

                sqlBuilder.append("(2, 1, '").append(tags).append("', 0, 0, '', 0, 0, '")
                        .append(title).append("', '").append(intro).append("', '").append(intro)
                        .append("', ").append(createTime).append(", ").append(postTime).append(", ")
                        .append(updateTime).append(", 0, ").append(viewNums).append(", '', ''),");

                sqlBuilder.append(System.lineSeparator());
            }

            String finalSQL = sqlBuilder.toString();
            finalSQL = finalSQL.substring(0, finalSQL.length() - 2) + ";"; // Remove the last comma and add a semicolon
            finalSQL = finalSQL.replace(",;", ";"); // Remove the comma before the semicolon

            writer.write(finalSQL);

            System.out.println("Generated SQL written to file: " + outputFile);

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}